message(WARNING "This is a ${BUILD_TARGET} project")

if(BUILD_TARGET STREQUAL "buildsdk")
    file(GLOB_RECURSE SOURCES "*.h" "*.cpp")
    # 创建库
    add_library(isc-lib-utils ${SOURCES})
    # 设置库的头文件路径
    target_include_directories(isc-lib-utils PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})

    # 查找 Boost 库
    find_package(Boost REQUIRED COMPONENTS system thread)
    # 如果 Boost 找到，配置头文件和库路径
    if(Boost_FOUND)
        # 输出 Boost 查找结果
        message(STATUS "Boost_INCLUDE_DIRS = ${Boost_INCLUDE_DIRS}")
        message(STATUS "Boost_LIBRARIES = ${Boost_LIBRARIES}")
        # 包含 Boost 头文件
        # 会影响所有后续目标
        # include_directories(${Boost_INCLUDE_DIRS})
        # PRIVATE 只对 isc-lib-utils 目标有效；
        # 如果是PUBLIC，如果其他目标链接了 isc-lib-utils，它们也会自动使用 Boost_INCLUDE_DIRS  
        # 如果是PUBLIC，在这里表示不仅当前库需要使用 Boost 的头文件，其他链接到 isc-lib-utils 库的目标也需要使用这些头文件。
        target_include_directories(isc-lib-utils PRIVATE ${Boost_INCLUDE_DIRS})
        # 将 Boost 库链接到目标
        target_link_libraries(isc-lib-utils PRIVATE ${Boost_LIBRARIES})
    else()
        message(FATAL_ERROR "Boost not found!")
    endif()
elseif(BUILD_TARGET STREQUAL "demo")
    file(GLOB_RECURSE SOURCES "*.h" "*.cpp")
    # 创建库
    add_library(isc-lib-utils ${SOURCES})
    # 设置库的头文件路径
    target_include_directories(isc-lib-utils PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
    
    # 查找 Boost 库
    find_package(Boost REQUIRED COMPONENTS system thread)
    # 如果 Boost 找到，配置头文件和库路径
    if(Boost_FOUND)
        # 输出 Boost 查找结果
        message(STATUS "Boost_INCLUDE_DIRS = ${Boost_INCLUDE_DIRS}")
        message(STATUS "Boost_LIBRARIES = ${Boost_LIBRARIES}")
        # 包含 Boost 头文件
        # 会影响所有后续目标
        # include_directories(${Boost_INCLUDE_DIRS})
        # PRIVATE 只对 isc-lib-utils 目标有效；
        # 如果是PUBLIC，如果其他目标链接了 isc-lib-utils，它们也会自动使用 Boost_INCLUDE_DIRS  
        # 如果是PUBLIC，在这里表示不仅当前库需要使用 Boost 的头文件，其他链接到 isc-lib-utils 库的目标也需要使用这些头文件。
        target_include_directories(isc-lib-utils PRIVATE ${Boost_INCLUDE_DIRS})
        # 将 Boost 库链接到目标
        target_link_libraries(isc-lib-utils PRIVATE ${Boost_LIBRARIES})
    else()
        message(FATAL_ERROR "Boost not found!")
    endif()
elseif(BUILD_TARGET STREQUAL "demo2")
    file(GLOB_RECURSE SOURCES "*.h" "*.cpp")
    # 创建库
    add_library(isc-lib-utils ${SOURCES})
    # 设置库的头文件路径
    target_include_directories(isc-lib-utils PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
    
    # 查找 Boost 库
    find_package(Boost REQUIRED COMPONENTS system thread)
    # 如果 Boost 找到，配置头文件和库路径
    if(Boost_FOUND)
        # 输出 Boost 查找结果
        message(STATUS "Boost_INCLUDE_DIRS = ${Boost_INCLUDE_DIRS}")
        message(STATUS "Boost_LIBRARIES = ${Boost_LIBRARIES}")
        # 包含 Boost 头文件
        # 会影响所有后续目标
        # include_directories(${Boost_INCLUDE_DIRS})
        # PRIVATE 只对 isc-lib-utils 目标有效；
        # 如果是PUBLIC，如果其他目标链接了 isc-lib-utils，它们也会自动使用 Boost_INCLUDE_DIRS  
        # 如果是PUBLIC，在这里表示不仅当前库需要使用 Boost 的头文件，其他链接到 isc-lib-utils 库的目标也需要使用这些头文件。
        target_include_directories(isc-lib-utils PRIVATE ${Boost_INCLUDE_DIRS})
        # 将 Boost 库链接到目标
        target_link_libraries(isc-lib-utils PRIVATE ${Boost_LIBRARIES})
    else()
        message(FATAL_ERROR "Boost not found!")
    endif()

endif()
